<?php

/**
 * exportacion actions.
 *
 * @package    proyectoMOD2
 * @subpackage exportacion
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class exportacionActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  
  
  public function executeIndex($peticion)
  {
    if ($peticion->isMethod('post'))
    {  
	$login=$this->getUser()->getAttribute('login');
	$password=$this->getUser()->getAttribute('password');	
	$id=$this->getUser()->getAttribute('id');
	 $this->getUser()->getAttributeHolder()->clear();
	 $this->getUser()->setAttribute('id', $id);
	 $this->getUser()->setAttribute('login', $login);
	 $this->getUser()->setAttribute('password', $password);
	 $this->getUser()->setAttribute('proyecto_id',  $peticion->getParameter('proyecto'));
	 $this->redirect('exportacion/exportar1');
	}   
	$this->formulario = new CargarBusquedaForm(); 
  }
  
  public function executeExportar1($peticion)
  {
  	$pro=ProyectoPeer::retrieveByPk($this->getUser()->getAttribute('proyecto_id'));
  	$this->getUser()->setAttribute('proyecto_nombre', $pro->getNombre());
  } 
  
  public function executeProcesar($peticion)
  {
	 $this->pro=ProyectoPeer::retrieveByPk($this->getUser()->getAttribute('proyecto_id'));
	 $c = new Criteria();
	 $c->add(RequerimientoPeer::PROYECTO_ID, $this->getUser()->getAttribute('proyecto_id'));
	 $c->addAscendingOrderByColumn(RequerimientoPeer::ID);
	 $requerimientos= RequerimientoPeer::doSelect($c);
	 foreach ($requerimientos as $requerimiento):
	 $this->tabla.="<tr align=\"center\"><td>". $requerimiento->getEspecificacion() ."</td><td>".
	 $requerimiento->getNroPuntos()."</td></tr>";
	 endforeach;
     //Export the output in Excel     
	 $this->setLayout(false);
     $this->getResponse()->setContentType('application/msexcel');
	 $this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="planificacion-'.
	 $this->pro->getNombre().'.xls"');
  } 
  
  public function executeProcesar1($peticion)
  {
	 $this->pro=ProyectoPeer::retrieveByPk($this->getUser()->getAttribute('proyecto_id'));
	 $c = new Criteria();
	 $c->add(RequerimientoPeer::PROYECTO_ID, $this->getUser()->getAttribute('proyecto_id'));
	 $c->addAscendingOrderByColumn(RequerimientoPeer::ID);
	 $requerimientos= RequerimientoPeer::doSelect($c);
	 foreach ($requerimientos as $requerimiento):
	 $this->tabla.="<tr><td align=\"center\">". $requerimiento->getEspecificacion() ."</td></tr>";
	 endforeach;
     //Export the output in Excel     
	 $this->setLayout(false);
     $this->getResponse()->setContentType('application/msexcel');
	 $this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="requerimientos-'.
	 $this->pro->getNombre().'.xls"');
  } 
  
    public function executeProcesar2($peticion)
  {
  		$con = Propel::getConnection();
		$stmt = $con->prepare("SELECT A.id as id, A.requerimiento_id as requerimiento_id,
		X.fecha_ini as fecha_ini, X.fecha_fin as fecha_fin, X.id as idi,
		E.especificacion as especificacion,
		A.descripcion as descripcion, 
		R.primer_nombre as nombre, 
		R.primer_apellido as apellido, 
		A.tiempo_ini_estimado as  ini_estimado,
		A.tiempo_fin_estimado as fin_estimado, 
		A.tiempo_ini_real as  ini_real,
		A.tiempo_fin_real as fin_real
		FROM actividad A, recurso R, ite_req I, requerimiento E, iteracion X WHERE R.id=A.recurso_id 
		and E.id= A.requerimiento_id and A.requerimiento_id=I.requerimiento_id and 
		X.proyecto_id=I.proyecto_id and I.proyecto_id= ? order by X.id,A.requerimiento_id ");
		$stmt->bindValue(1, $this->getUser()->getAttribute('proyecto_id'));
		$stmt->execute();
		$id="";
		$ite="";
		$i=1;
		$this->pro=ProyectoPeer::retrieveByPk($this->getUser()->getAttribute('proyecto_id'));
		while($fila = $stmt->fetch()) 
		{
		if (!($ite==$fila['idi']))
		{		
			$ite=$fila['idi'];
			$this->tabla1."</table><table border=\"0\"><tr><td></td><td></td><td></td><td></td><td>
			</td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td>
			</td></tr><tr><td bgcolor=\"#006699\"><h5 align=\"center\" class=\"style2\">Iteracion ".$i
			." </h5></td><td bgcolor=\"#006699\"><h5 align=\"center\" class=\"style2\">Fecha de Inicio
			</h5></td><td bgcolor=\"#006699\">".$fila['fecha_ini']."</td><td bgcolor=\"#006699\"><h5
			align=\"center\" class=\"style2\">Fecha Fin</h5></td><td colspan=\"2\" 
			bgcolor=\"#006699\">".$fila['fecha_fin']."</td></tr>";
			$i=$i+1;
		}
		if ($id==$fila['requerimiento_id'])
		{					
			$this->tabla1.= "</table><table border=\"1\"><tr><td>". $fila['descripcion']."</td><td 
			align=\"center\">".$fila['nombre']." ". $fila['apellido']."</td><td>". 
			$fila['ini_estimado']."</td><td>".$fila['fin_estimado']."</td><td>". $fila['ini_real']."
			</td><td>".$fila['fin_real']."</td></tr>";
		}else 
		{	
		    $this->tabla1.= "</table><table border=\"0\"><tr><td></td><td></td><td></td><td></td><td>
			</td><td></td><td></td></tr>";
			$id=$fila['requerimiento_id'];
			$this->tabla1.= "<tr><td colspan=\"6\" color=\"#000000\" bgcolor=\"#3366FF\"><h5 
			align=\"left\"class=\"style2\"> Requerimiento:". $fila['especificacion']."</h5></td><td>
			</tr><tr><td width=\"200\" bgcolor=\"#8BA4A7\"><h5 align=\"center\" class=\"style2\">
			Actividad</h5></td><td width=\"200\" bgcolor=\"#8BA4A7\"><h5 align=\"center\" 
			class=\"style2\">Encargado</h5></td><td width=\"93\" bgcolor=\"#8BA4A7\"><h5 
			align=\"center\" class=\"style2\">Fecha de Inicio Estimada</h5></td><td width=\"69\" 
			bgcolor=\"#8BA4A7\"><h5 align=\"center\" class=\"style2\">Fecha Fin Estimada</h5></td><td 
			width=\"70\" bgcolor=\"#8BA4A7\"><h5 align=\"center\" class=\"style2\">Fecha de Inicio  
			Real</h5></td><td width=\"70\" bgcolor=\"#8BA4A7\"><h5 align=\"center\" class=\"style2\">
			Fecha Fin Real</h5></td></tr><table border=\"1\"><tr><td>". $fila['descripcion']."</td><td
			align=\"center\">".$fila['nombre']." ". $fila['apellido']."</td><td>". $fila[
			'ini_estimado']."</td><td>".$fila['fin_estimado']."</td><td>". $fila['ini_real']."</td>
			<td>".$fila['fin_real']."</td></tr>";
		}			
		} 		   
	 $this->setLayout(false);
     $this->getResponse()->setContentType('application/msexcel');
	 $this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="planificacion de la iteracion-'.$this->pro->getNombre().'.xls"');
  } 

  public function executeProcesar3($peticion)
  {
  		$c= new Proyecto();
		$this->tabla=$c->avance_proyecto($this->getUser()->getAttribute('proyecto_id'));
		$this->tabla1=$c->avance_proyectop($this->getUser()->getAttribute('proyecto_id'));	
	    $this->pro=ProyectoPeer::retrieveByPk($this->getUser()->getAttribute('proyecto_id'));
		$datos=$this->tabla;
		$graph = new ezcGraphPieChart();
		$datos1=$this->tabla1;	
		$graph = new ezcGraphPieChart();
		$graph->data['2005'] = new ezcGraphArrayDataSet($datos1);
		$graph->driver = new ezcGraphGdDriver();
    	$graph->options->font = 'images/font/font.ttf';
		$graph->driver->options->supersampling = 5;
		$graph->driver->options->jpegQuality = 100;
		$graph->driver->options->imageFormat = IMG_JPEG;
		$graph->options->sum = 100;
		$graph->options->percentThreshold = 0.02;
		$this->nombre='avance'.$this->getUser()->getAttribute('proyecto_id').'.jpg';
		$graph->render(500, 250,'images/'.$this->nombre);
		$this->setLayout(false);
	    $this->getResponse()->setContentType('application/msexcel');
		$this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="avance-'.$this->
		pro->getNombre().'.xls"');
  } 
  
  public function executeProcesar4($peticion)
  {		
  		$c= new Iteracion();
		$datos=$c->getIteracionFecha($this->getUser()->getAttribute('proyecto_id'));	
		$this->pro=ProyectoPeer::retrieveByPk($this->getUser()->getAttribute('proyecto_id'));
		$this->getUser()->setAttribute('proyecto_nombre', $this->pro->getNombre());
		$graph = new ezcGraphLineChart();
		$i="";
		$j=$i=$c->getCuenta($this->getUser()->getAttribute('proyecto_id'));
		foreach ( $datos as $language => $data )
		{
		$a='Iteracion '.$j;
		$graph->data[$a] = new ezcGraphArrayDataSet( $data );
		$graph->data[$a]->displayType = ezcGraph::LINE; 
		$j=$j-1;
		$i=$language;
		} 
		$graph->yAxis = new ezcGraphChartElementNumericAxis();
		$graph->driver = new ezcGraphGdDriver();
		$graph->yAxis->label = 'Iteraciones';
		$graph->xAxis->label = 'Tiempo';
		$graph->yAxis->min = 0;
		$graph->yAxis->max = $i;
		$graph->options->font = 'images/font/font.ttf';
		$graph->renderer->options->legendSymbolGleam = .8;
		$graph->options->font->maxFontSize = 14;
		$graph->xAxis->axisLabelRenderer = new ezcGraphAxisRotatedLabelRenderer();
		$graph->xAxis->axisLabelRenderer->angle = 45;
		$graph->xAxis->axisSpace = .2;  
		$graph->render(600, 320,'images/linea'.$this->pro->getNombre().'.svg');
		$this->setLayout(false);
	    $this->getResponse()->setContentType('application/msexcel');
		$this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="linea'.$this->
		pro->getNombre().'.xls"');
  } 

}
